package com.ruoyi.message.mapper;

import java.util.List;

import com.ruoyi.message.domain.TMessage;
import com.ruoyi.message.domain.TMessageUser;
import org.apache.ibatis.annotations.Param;

/**
 * 消息用户关联Mapper接口
 *
 * @author Bandit
 * @date 2022-11-01
 */
public interface TMessageUserMapper
{
    /**
     * 查询消息用户关联
     *
     * @param messageId 消息用户关联主键
     * @return 消息用户关联
     */
    public TMessageUser selectTMessageUserByMessageId(Long messageId);

    /**
     * 查询消息用户关联列表
     *
     * @param tMessageUser 消息用户关联
     * @return 消息用户关联集合
     */
    public List<TMessageUser> selectTMessageUserList(TMessageUser tMessageUser);

    /**
     * 通过用户id查询自己的消息
     * @param userId
     * @return
     */
    public List<TMessage> selectTMessageListByUserId(Long userId);

    /**
     * 新增消息用户关联
     *
     * @param tMessageUser 消息用户关联
     * @return 结果
     */
    public int insertTMessageUser(TMessageUser tMessageUser);

    /**
     * 批量新增消息用户关联
     *
     * @param messageUserList 消息用户关联列表
     * @return 结果
     */
    public int insertTMessageUserBatch(@Param("list") List<TMessageUser> messageUserList);

    /**
     * 修改消息用户关联
     *
     * @param tMessageUser 消息用户关联
     * @return 结果
     */
    public int updateTMessageUser(TMessageUser tMessageUser);

    /**
     * 删除消息用户关联
     *
     * @param messageId 消息用户关联主键
     * @return 结果
     */
    public int deleteTMessageUserByMessageId(Long messageId);

    /**
     * 批量删除消息用户关联
     *
     * @param messageIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTMessageUserByMessageIds(Long[] messageIds);

    public int updateRead(@Param("userId") Long userId, @Param("messageId") Long messageId);
}
